package com.sanyue.springboot.controller;

import com.sanyue.springboot.bean.Car;
import com.sanyue.springboot.bean.Monster;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;

/**
 * 注解：@ResponseBody
 * 处理json数据
 * 内容：debug——AbstractJackson2HttpMessageConverter
 *
 * @author: Guan
 **/
@Controller
public class ResponseController {

    /**
     * 解读:
     *   1.当我们没有配置xml依赖的时候,浏览器默认返回json格式的数据
     *   2.当我们引入xml依赖的时候,返回的是xml格式的数据
     *   3.我们可以通过配置Accept来选择浏览器显示页面的方式
     *   4.q=0.9权重
     *   5.在PostMan中因为没有这种设置,如果后端没有导入xml依赖,则会报错405
     *   6.理解内容协商:按照顺序来,如果能够处理,则正常处理。如果不能处理,则使用另一种方式处理。十分灵活。
     */
    // 5.xml的权重大, */*(json)的权重小,所以理论应该浏览器展示xml格式数据
    // 6.但是服务器发现后端没有引入依赖,无法处理xml格式数据,所有就返回json数据
    //Accept:
    // text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
    @RequestMapping("/getMonster")
    @ResponseBody
    public Monster getMonster(){
        Monster monster = new Monster();
        monster.setId(100);
        monster.setName("奔波霸");
        monster.setAge(200);
        monster.setIsMarried(false);
        monster.setBirth(new Date());
        Car car = new Car();
        car.setName("奔驰");
        car.setPrice(222.2);
        monster.setCar(car);
        return monster;
    }
}
